home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 2.iso / dist / fw_libmng.idb / usr / freeware / include / libmng_types.h.z / libmng_types.h
Text File  |  2001-10-09  |  26KB  |  498 lines

  1. /* ************************************************************************** */
  2. /* *             For conditions of distribution and use,                    * */
  3. /* *                see copyright notice in libmng.h                        * */
  4. /* ************************************************************************** */
  5. /* *                                                                        * */
  6. /* * project   : libmng                                                     * */
  7. /* * file      : libmng_types.h            copyright (c) 2000 G.Juyn        * */
  8. /* * version   : 1.0.3                                                      * */
  9. /* *                                                                        * */
  10. /* * purpose   : type specifications                                        * */
  11. /* *                                                                        * */
  12. /* * author    : G.Juyn                                                     * */
  13. /* * web       : http://www.3-t.com                                         * */
  14. /* * email     : mailto:info@3-t.com                                        * */
  15. /* *                                                                        * */
  16. /* * comment   : Specification of the types used by the library             * */
  17. /* *             Creates platform-independant structure                     * */
  18. /* *                                                                        * */
  19. /* * changes   : 0.5.1 - 05/06/2000 - G.Juyn                                * */
  20. /* *             - added iteratechunk callback definition                   * */
  21. /* *             0.5.1 - 05/08/2000 - G.Juyn                                * */
  22. /* *             - improved definitions for DLL support                     * */
  23. /* *             - added 8-bit palette definition                           * */
  24. /* *             - added general array definitions                          * */
  25. /* *             - added MNG_NULL definition                                * */
  26. /* *             - changed strict-ANSI stuff                                * */
  27. /* *             0.5.1 - 05/11/2000 - G.Juyn                                * */
  28. /* *             - changed most callback prototypes to allow the app        * */
  29. /* *               to report errors during callback processing              * */
  30. /* *             0.5.1 - 05/16/2000 - G.Juyn                                * */
  31. /* *             - moved standard header includes into this file            * */
  32. /* *               (stdlib/mem for mem-mngmt & math for fp gamma-calc)      * */
  33. /* *                                                                        * */
  34. /* *             0.5.2 - 05/18/2000 - G.Juyn                                * */
  35. /* *             - B003 - fixed problem with <mem.h> being proprietary      * */
  36. /* *               to Borland platform                                      * */
  37. /* *             - added helper definitions for JNG (IJG-based)             * */
  38. /* *             - fixed support for IJGSRC6B                               * */
  39. /* *             0.5.2 - 05/24/2000 - G.Juyn                                * */
  40. /* *             - added default IJG compression parameters and such        * */
  41. /* *             0.5.2 - 05/31/2000 - G.Juyn                                * */
  42. /* *             - fixed inclusion for memcpy (contributed by Tim Rowley)   * */
  43. /* *             - added mng_int32p (contributed by Tim Rowley)             * */
  44. /* *             0.5.2 - 06/02/2000 - G.Juyn                                * */
  45. /* *             - removed SWAP_ENDIAN reference (contributed by Tim Rowley)* */
  46. /* *             - added getalphaline callback for RGB8_A8 canvasstyle      * */
  47. /* *                                                                        * */
  48. /* *             0.5.3 - 06/21/2000 - G.Juyn                                * */
  49. /* *             - added speedtype to facilitate testing                    * */
  50. /* *             0.5.3 - 06/27/2000 - G.Juyn                                * */
  51. /* *             - added typedef for mng_size_t                             * */
  52. /* *             - changed size parameter for memory callbacks to           * */
  53. /* *               mng_size_t                                               * */
  54. /* *             0.5.3 - 06/28/2000 - G.Juyn                                * */
  55. /* *             - changed definition of 32-bit ints (64-bit platforms)     * */
  56. /* *             - changed definition of mng_handle (64-bit platforms)      * */
  57. /* *             0.5.3 - 06/29/2000 - G.Juyn                                * */
  58. /* *             - changed definition of mng_handle (again)                 * */
  59. /* *             - swapped refresh parameters                               * */
  60. /* *             - added inclusion of stdlib.h for abs()                    * */
  61. /* *                                                                        * */
  62. /* *             0.9.0 - 06/30/2000 - G.Juyn                                * */
  63. /* *             - changed refresh parameters to 'x,y,width,height'         * */
  64. /* *             0.9.1 - 07/10/2000 - G.Juyn                                * */
  65. /* *             - added suspendbuffer constants                            * */
  66. /* *             0.9.1 - 07/15/2000 - G.Juyn                                * */
  67. /* *             - added callbacks for SAVE/SEEK processing                 * */
  68. /* *                                                                        * */
  69. /* *             0.9.2 - 08/05/2000 - G.Juyn                                * */
  70. /* *             - changed file-prefixes                                    * */
  71. /* *                                                                        * */
  72. /* *             0.9.3 - 08/07/2000 - G.Juyn                                * */
  73. /* *             - B111300 - fixup for improved portability                 * */
  74. /* *             0.9.3 - 08/12/2000 - G.Juyn                                * */
  75. /* *             - added workaround for faulty PhotoShop iCCP chunk         * */
  76. /* *             0.9.3 - 09/11/2000 - G.Juyn                                * */
  77. /* *             - added export of zlib functions from windows dll          * */
  78. /* *             - fixed inclusion parameters once again to make those      * */
  79. /* *               external libs work together                              * */
  80. /* *             - re-fixed fixed inclusion parameters                      * */
  81. /* *               (these freeking libraries make me mad)                   * */
  82. /* *             0.9.3 - 10/11/2000 - G.Juyn                                * */
  83. /* *             - added support for nEED                                   * */
  84. /* *             0.9.3 - 10/17/2000 - G.Juyn                                * */
  85. /* *             - added callback to process non-critical unknown chunks    * */
  86. /* *                                                                        * */
  87. /* *             0.9.4 - 11/20/2000 - R.Giles                               * */
  88. /* *             - fixed inclusion of lcms header for non-windows platforms * */
  89. /* *             0.9.4 - 12/12/2000 - G.Juyn                                * */
  90. /* *             - changed callback convention for MSVC (Thanks Chad)       * */
  91. /* *             0.9.4 - 12/16/2000 - G.Juyn                                * */
  92. /* *             - fixed mixup of data- & function-pointers (thanks Dimitri)* */
  93. /* *                                                                        * */
  94. /* *             1.0.1 - 02/08/2001 - G.Juyn                                * */
  95. /* *             - added MEND processing callback                           * */
  96. /* *                                                                        * */
  97. /* *             1.0.2 - 06/23/2001 - G.Juyn                                * */
  98. /* *             - added processterm callback                               * */
  99. /* *                                                                        * */
  100. /* *             1.0.3 - 08/06/2001 - G.Juyn                                * */
  101. /* *             - changed inclusion of lcms.h for Linux platforms          * */
  102. /* *                                                                        * */
  103. /* ************************************************************************** */
  104.  
  105. #ifndef _libmng_types_h_
  106. #define _libmng_types_h_
  107.  
  108. /* ************************************************************************** */
  109.  
  110. #ifdef __BORLANDC__
  111. #pragma option -AT                     /* turn off strict ANSI-C for the moment */
  112. #endif
  113.  
  114. #ifndef WIN32
  115. #if defined(_WIN32) || defined(__WIN32__) || defined(_Windows) || defined(_WINDOWS)
  116. #define WIN32                          /* gather them into a single define */
  117. #endif
  118. #endif
  119.  
  120. /* ************************************************************************** */
  121. /* *                                                                        * */
  122. /* * Here's where the external & standard libs are embedded                 * */
  123. /* *                                                                        * */
  124. /* * (it can be a bit of a pain in the lower-back to get them to work       * */
  125. /* *  together)                                                             * */
  126. /* *                                                                        * */
  127. /* ************************************************************************** */
  128.  
  129. #ifdef WIN32                           /* only include needed stuff */
  130. #ifndef WIN32_LEAN_AND_MEAN
  131. #define WIN32_LEAN_AND_MEAN
  132. #endif
  133. #endif
  134.  
  135. #ifdef MNG_USE_DLL
  136. #ifdef MNG_SKIP_ZLIB
  137. #undef MNG_INCLUDE_ZLIB
  138. #endif
  139. #ifdef MNG_SKIP_LCMS
  140. #undef MNG_INCLUDE_LCMS
  141. #endif
  142. #ifdef MNG_SKIP_IJG6B
  143. #undef MNG_INCLUDE_IJG6B
  144. #endif
  145. #endif
  146.  
  147. #ifdef MNG_INCLUDE_ZLIB                /* zlib by Mark Adler & Jean-loup Gailly */
  148. #include "zlib.h"
  149. #endif
  150.  
  151. #ifdef MNG_INCLUDE_LCMS                /* little cms by Marti Maria Saguer */
  152. #ifndef ZLIB_DLL
  153. #undef FAR
  154. #endif
  155. #if defined(WIN32) || defined(linux)   /* different header locations */
  156. #include "lcms.h"
  157. #else
  158. #include "lcms/lcms.h"
  159. #endif
  160. #endif /* MNG_INCLUDE_LCMS */
  161.  
  162. #ifdef MNG_INCLUDE_IJG6B               /* IJG's jpgsrc6b */
  163. #include <stdio.h>
  164. #ifdef MNG_USE_SETJMP
  165. #include <setjmp.h>                    /* needed for error-recovery (blergh) */
  166. #else
  167. #ifdef WIN32
  168. #define USE_WINDOWS_MESSAGEBOX         /* display a messagebox under Windoze */
  169. #endif
  170. #endif /* MNG_USE_SETJMP */
  171. #ifdef FAR
  172. #undef FAR                             /* possibly defined by zlib or lcms */
  173. #endif
  174. #include "jpeglib.h"                   /* all that for JPEG support  :-) */
  175. #endif /* MNG_INCLUDE_IJG6B */
  176.  
  177. #if defined(MNG_INTERNAL_MEMMNGMT) || defined(MNG_INCLUDE_FILTERS)
  178. #include <stdlib.h>                    /* "calloc" & "free" & "abs" */
  179. #endif
  180.  
  181. #include <limits.h>                    /* get proper integer widths */
  182.  
  183. #ifdef WIN32
  184. /* B003 */
  185. #if defined __BORLANDC__
  186. #include <mem.h>                       /* defines "memcpy" for BCB */
  187. #else
  188. #include <memory.h>                    /* defines "memcpy" for other win32 platforms */
  189. #endif
  190. /* B003 */
  191. #ifdef MNG_CHECK_BAD_ICCP
  192. #include <string.h>                    /* strncmp() */
  193. #endif
  194. #else
  195. #ifdef BSD
  196. #include <strings.h>                   /* defines "memcpy" for BSD (?) */
  197. #else
  198. #include <string.h>                    /* defines "memcpy" for all others (???) */
  199. #endif
  200. #endif
  201.  
  202. #if defined(MNG_FULL_CMS) || defined(MNG_GAMMA_ONLY)
  203. #include <math.h>                      /* fp gamma-calculation */
  204. #endif
  205.  
  206. /* ************************************************************************** */
  207. /* *                                                                        * */
  208. /* * Platform-dependant stuff                                               * */
  209. /* *                                                                        * */
  210. /* ************************************************************************** */
  211.  
  212. /* TODO: this may require some elaboration for other platforms;
  213.    only works with BCB for now */
  214.  
  215. #ifndef MNG_DLL
  216. #if defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
  217. #define MNG_DLL
  218. #endif
  219. #endif
  220.  
  221. #if defined(MNG_DLL) && defined(WIN32) /* setup DLL calling conventions */ 
  222. #define MNG_DECL __stdcall
  223. #if defined(MNG_BUILD_DLL)
  224. #define MNG_EXT __declspec(dllexport)
  225. #elif defined(MNG_USE_DLL)
  226. #define MNG_EXT __declspec(dllimport)
  227. #else
  228. #define MNG_EXT
  229. #endif
  230. #ifdef MNG_STRICT_ANSI
  231. #undef MNG_STRICT_ANSI                 /* can't do strict-ANSI with this DLL-stuff */
  232. #endif
  233. #else
  234. #define MNG_DECL                       /* dummies for non-DLL */
  235. #define MNG_EXT
  236. #endif /* MNG_DLL && WIN32 */
  237.  
  238. #if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)
  239. #pragma option -A                      /* now force ANSI-C from here on */
  240. #endif
  241.  
  242. /* ************************************************************************** */
  243.  
  244. #if USHRT_MAX == 0xffffffffU                     /* get the proper 32-bit width !!! */
  245. typedef unsigned short   mng_uint32;
  246. typedef signed   short   mng_int32;
  247. #elif UINT_MAX == 0xffffffffU
  248. typedef unsigned int     mng_uint32;
  249. typedef signed   int     mng_int32;
  250. #elif ULONG_MAX == 0xffffffffU
  251. typedef unsigned long    mng_uint32;
  252. typedef signed   long    mng_int32;
  253. #else
  254. #error "Sorry, I can't find any 32-bit integers on this platform."
  255. #endif
  256.  
  257. typedef signed   short   mng_int16;              /* other basic integers */
  258. typedef unsigned short   mng_uint16;
  259. typedef signed   char    mng_int8;
  260. typedef unsigned char    mng_uint8;
  261.  
  262. typedef double           mng_float;              /* basic float */
  263.  
  264. typedef size_t           mng_size_t;             /* size field for memory allocation */
  265.  
  266. typedef char *           mng_pchar;              /* string */
  267. typedef void *           mng_ptr;                /* generic pointer */
  268. typedef void             (*mng_fptr) (void);     /* generic function pointer */
  269.  
  270. /* ************************************************************************** */
  271. /* *                                                                        * */
  272. /* * Platform-independant from here                                         * */
  273. /* *                                                                        * */
  274. /* ************************************************************************** */
  275.  
  276. typedef mng_uint32 *     mng_uint32p;            /* pointer to unsigned longs */
  277. typedef mng_int32 *      mng_int32p;             /* pointer to longs */
  278. typedef mng_uint16 *     mng_uint16p;            /* pointer to unsigned words */
  279. typedef mng_uint8 *      mng_uint8p;             /* pointer to unsigned bytes */
  280.  
  281. typedef mng_int8         mng_bool;               /* booleans */
  282.  
  283. struct mng_data_struct;
  284. typedef struct mng_data_struct * mng_handle;     /* generic handle */
  285.  
  286. typedef mng_int32        mng_retcode;            /* generic return code */
  287. typedef mng_int32        mng_chunkid;            /* 4-byte chunkname identifier */
  288. typedef mng_ptr          mng_chunkp;             /* pointer to a chunk-structure */
  289. typedef mng_ptr          mng_objectp;            /* pointer to an object-structure */
  290.  
  291. typedef mng_chunkid *    mng_chunkidp;           /* pointer to chunkid */
  292.  
  293. typedef struct {                                 /* 8-bit palette element */
  294.           mng_uint8 iRed;
  295.           mng_uint8 iGreen;
  296.           mng_uint8 iBlue;
  297.         } mng_palette8e;
  298. typedef mng_palette8e   mng_palette8[256];       /* 8-bit palette */
  299. typedef mng_palette8e * mng_palette8ep;
  300.  
  301. typedef mng_uint8       mng_uint8arr[256];       /* generic arrays */
  302. typedef mng_uint8       mng_uint8arr4[4];
  303. typedef mng_uint16      mng_uint16arr[256];
  304. typedef mng_uint32      mng_uint32arr2[2];
  305.  
  306. /* ************************************************************************** */
  307.  
  308. #define MNG_FALSE 0
  309. #define MNG_TRUE  1
  310. #define MNG_NULL  0
  311.  
  312. #define MNG_SUSPENDBUFFERSIZE  32768
  313. #define MNG_SUSPENDREQUESTSIZE  1024
  314.  
  315. /* ************************************************************************** */
  316.  
  317. #ifdef MNG_INCLUDE_ZLIB
  318.  
  319. /* size of temporary zlib buffer for deflate processing */
  320. #define MNG_ZLIB_MAXBUF     8192
  321.  
  322. /* default zlib compression parameters for deflateinit2 */
  323. #define MNG_ZLIB_LEVEL      9                    /* level */
  324. #define MNG_ZLIB_METHOD     Z_DEFLATED           /* method */
  325. #define MNG_ZLIB_WINDOWBITS 15                   /* window size */
  326. #define MNG_ZLIB_MEMLEVEL   9                    /* memory level */
  327. #define MNG_ZLIB_STRATEGY   Z_DEFAULT_STRATEGY   /* strategy */
  328.  
  329. #define MNG_MAX_IDAT_SIZE   4096                 /* maximum size of IDAT data */
  330.  
  331. #endif /* MNG_INCLUDE_ZLIB */
  332.  
  333. /* ************************************************************************** */
  334.  
  335. #ifdef MNG_INCLUDE_JNG
  336.  
  337. #ifdef MNG_INCLUDE_IJG6B                         /* IJG helper defs */
  338. typedef struct jpeg_compress_struct   mngjpeg_comp;
  339. typedef struct jpeg_decompress_struct mngjpeg_decomp;
  340. typedef struct jpeg_error_mgr         mngjpeg_error;
  341. typedef struct jpeg_source_mgr        mngjpeg_source;
  342.  
  343. typedef mngjpeg_comp   * mngjpeg_compp;
  344. typedef mngjpeg_decomp * mngjpeg_decompp;
  345. typedef mngjpeg_error  * mngjpeg_errorp;
  346. typedef mngjpeg_source * mngjpeg_sourcep;
  347.  
  348. typedef J_DCT_METHOD     mngjpeg_dctmethod;
  349.  
  350. /* default IJG parameters for compression */
  351. #define MNG_JPEG_DCT         JDCT_DEFAULT        /* DCT algorithm (JDCT_ISLOW) */
  352. #define MNG_JPEG_QUALITY     100                 /* quality 0..100; 100=best */
  353. #define MNG_JPEG_SMOOTHING   0                   /* default no smoothing */
  354. #define MNG_JPEG_PROGRESSIVE MNG_FALSE           /* default is just baseline */
  355. #define MNG_JPEG_OPTIMIZED   MNG_FALSE           /* default is not optimized */
  356. #endif /* MNG_INCLUDE_IJG6B */
  357.  
  358. #define MNG_JPEG_MAXBUF      65500               /* max size of temp JPEG buffer */
  359. #define MNG_MAX_JDAT_SIZE    4096                /* maximum size of JDAT data */
  360.  
  361. #endif /* MNG_INCLUDE_JNG */
  362.  
  363. /* ************************************************************************** */
  364.  
  365. #ifdef MNG_INCLUDE_LCMS
  366. typedef cmsHPROFILE         mng_cmsprof;         /* little CMS helper defs */
  367. typedef cmsHTRANSFORM       mng_cmstrans;
  368. typedef cmsCIExyY           mng_CIExyY;
  369. typedef cmsCIExyYTRIPLE     mng_CIExyYTRIPLE;
  370. typedef LPGAMMATABLE        mng_gammatabp;
  371. #endif /* MNG_INCLUDE_LCMS */
  372.  
  373. /* ************************************************************************** */
  374.  
  375.                                        /* enumeration of known graphics types */
  376. enum mng_imgtypes {mng_it_unknown, mng_it_png, mng_it_mng, mng_it_jng};
  377. typedef enum mng_imgtypes mng_imgtype;
  378.  
  379.                                        /* enumeration of animation speed-types */
  380. enum mng_speedtypes {mng_st_normal, mng_st_fast, mng_st_slow, mng_st_slowest};
  381. typedef enum mng_speedtypes mng_speedtype;
  382.  
  383. /* ************************************************************************** */
  384.  
  385.                                        /* memory management callbacks */
  386. typedef mng_ptr    (MNG_DECL *mng_memalloc)      (mng_size_t  iLen);
  387. typedef void       (MNG_DECL *mng_memfree)       (mng_ptr     iPtr,
  388.                                                   mng_size_t  iLen);
  389.  
  390.                                        /* I/O management callbacks */
  391. typedef mng_bool   (MNG_DECL *mng_openstream)    (mng_handle  hHandle);
  392. typedef mng_bool   (MNG_DECL *mng_closestream)   (mng_handle  hHandle);
  393. typedef mng_bool   (MNG_DECL *mng_readdata)      (mng_handle  hHandle,
  394.                                                   mng_ptr     pBuf,
  395.                                                   mng_uint32  iBuflen,
  396.                                                   mng_uint32p pRead);
  397. typedef mng_bool   (MNG_DECL *mng_writedata)     (mng_handle  hHandle,
  398.                                                   mng_ptr     pBuf,
  399.                                                   mng_uint32  iBuflen,
  400.                                                   mng_uint32p pWritten);
  401.  
  402.                                        /* error & trace processing callbacks */
  403. typedef mng_bool   (MNG_DECL *mng_errorproc)     (mng_handle  hHandle,
  404.                                                   mng_int32   iErrorcode,
  405.                                                   mng_int8    iSeverity,
  406.                                                   mng_chunkid iChunkname,
  407.                                                   mng_uint32  iChunkseq,
  408.                                                   mng_int32   iExtra1,
  409.                                                   mng_int32   iExtra2,
  410.                                                   mng_pchar   zErrortext);
  411. typedef mng_bool   (MNG_DECL *mng_traceproc)     (mng_handle  hHandle,
  412.                                                   mng_int32   iFuncnr,
  413.                                                   mng_int32   iFuncseq,
  414.                                                   mng_pchar   zFuncname);
  415.  
  416.                                        /* read processing callbacks */
  417. typedef mng_bool   (MNG_DECL *mng_processheader) (mng_handle  hHandle,
  418.                                                   mng_uint32  iWidth,
  419.                                                   mng_uint32  iHeight);
  420. typedef mng_bool   (MNG_DECL *mng_processtext)   (mng_handle  hHandle,
  421.                                                   mng_uint8   iType,
  422.                                                   mng_pchar   zKeyword,
  423.                                                   mng_pchar   zText,
  424.                                                   mng_pchar   zLanguage,
  425.                                                   mng_pchar   zTranslation);
  426. typedef mng_bool   (MNG_DECL *mng_processsave)   (mng_handle  hHandle);
  427. typedef mng_bool   (MNG_DECL *mng_processseek)   (mng_handle  hHandle,
  428.                                                   mng_pchar   zName);
  429. typedef mng_bool   (MNG_DECL *mng_processneed)   (mng_handle  hHandle,
  430.                                                   mng_pchar   zKeyword);
  431. typedef mng_bool   (MNG_DECL *mng_processmend)   (mng_handle  hHandle,
  432.                                                   mng_uint32  iIterationsdone,
  433.                                                   mng_uint32  iIterationsleft);
  434. typedef mng_bool   (MNG_DECL *mng_processunknown) (mng_handle  hHandle,
  435.                                                    mng_chunkid iChunkid,
  436.                                                    mng_uint32  iRawlen,
  437.                                                    mng_ptr     pRawdata);
  438. typedef mng_bool   (MNG_DECL *mng_processterm)   (mng_handle  hHandle,
  439.                                                   mng_uint8   iTermaction,
  440.                                                   mng_uint8   iIteraction,
  441.                                                   mng_uint32  iDelay,
  442.                                                   mng_uint32  iItermax);
  443.  
  444.                                        /* display processing callbacks */
  445. typedef mng_ptr    (MNG_DECL *mng_getcanvasline) (mng_handle  hHandle,
  446.                                                   mng_uint32  iLinenr);
  447. typedef mng_ptr    (MNG_DECL *mng_getbkgdline)   (mng_handle  hHandle,
  448.                                                   mng_uint32  iLinenr);
  449. typedef mng_ptr    (MNG_DECL *mng_getalphaline)  (mng_handle  hHandle,
  450.                                                   mng_uint32  iLinenr);
  451. typedef mng_bool   (MNG_DECL *mng_refresh)       (mng_handle  hHandle,
  452.                                                   mng_uint32  iX,
  453.                                                   mng_uint32  iY,
  454.                                                   mng_uint32  iWidth,
  455.                                                   mng_uint32  iHeight);
  456.  
  457.                                        /* timer management callbacks */
  458. typedef mng_uint32 (MNG_DECL *mng_gettickcount)  (mng_handle  hHandle);
  459. typedef mng_bool   (MNG_DECL *mng_settimer)      (mng_handle  hHandle,
  460.                                                   mng_uint32  iMsecs);
  461.  
  462.                                        /* color management callbacks */
  463. typedef mng_bool   (MNG_DECL *mng_processgamma)  (mng_handle  hHandle,
  464.                                                   mng_uint32  iGamma);
  465. typedef mng_bool   (MNG_DECL *mng_processchroma) (mng_handle  hHandle,
  466.                                                   mng_uint32  iWhitepointx,
  467.                                                   mng_uint32  iWhitepointy,
  468.                                                   mng_uint32  iRedx,
  469.                                                   mng_uint32  iRedy,
  470.                                                   mng_uint32  iGreenx,
  471.                                                   mng_uint32  iGreeny,
  472.                                                   mng_uint32  iBluex,
  473.                                                   mng_uint32  iBluey);
  474. typedef mng_bool   (MNG_DECL *mng_processsrgb)   (mng_handle  hHandle,
  475.                                                   mng_uint8   iRenderingintent);
  476. typedef mng_bool   (MNG_DECL *mng_processiccp)   (mng_handle  hHandle,
  477.                                                   mng_uint32  iProfilesize,
  478.                                                   mng_ptr     pProfile);
  479. typedef mng_bool   (MNG_DECL *mng_processarow)   (mng_handle  hHandle,
  480.                                                   mng_uint32  iRowsamples,
  481.                                                   mng_bool    bIsRGBA16,
  482.                                                   mng_ptr     pRow);
  483.  
  484.                                        /* chunk access callback(s) */
  485. typedef mng_bool   (MNG_DECL *mng_iteratechunk)  (mng_handle  hHandle,
  486.                                                   mng_handle  hChunk,
  487.                                                   mng_chunkid iChunkid,
  488.                                                   mng_uint32  iChunkseq);
  489.  
  490. /* ************************************************************************** */
  491.  
  492. #endif /* _libmng_types_h_ */
  493.  
  494. /* ************************************************************************** */
  495. /* * end of file                                                            * */
  496. /* ************************************************************************** */
  497.  
  498.